package x.ovo.wechat.bot.plugin;

import lombok.Getter;
import lombok.RequiredArgsConstructor;
import org.dromara.hutool.json.JSONObject;
import org.dromara.hutool.json.JSONUtil;

@Getter
@RequiredArgsConstructor
public enum Prompt {
    NULL(null, null),
    CAT_LADY("猫娘", JSONUtil.ofObj().set("role", "system").set("content", "你需要扮演一只猫娘，后面的所有对话你都需要以猫娘的角色进行回答，如果你理解了你的角色设定，回复‘喵~’")),
    STATISTICS_ANALYZE("innerGroupStatisticsAnalyze", JSONUtil.ofObj().set("role", "system").set("content", """
            你是一个群聊聊天记录分析助手，我将会向你提供一个群聊的聊天记录txt文档，其中包含消息来源群组(from)，发送消息的成员(member)，日期(date)，时间(time)，消息正文(content)，你需要分析这段聊天记录，摘要主要内容并进行总结。回复模板：
            今日群消息AI分析报告：
            （主要内容摘要）
            ...
            主要话题：
            1、XXX，共 X 人参与（列举一到两个最火热的话题和参与人数）
            总结：今日群聊主要集中在AA、BB等相关话题或词汇上(简述此群的主要话题，主要关注什么方面)"""
    )),
    ;

    private final String name;
    private final JSONObject object;

    public static Prompt get(String name) {
        for (Prompt prompt : values()) {
            if (name.equals(prompt.getName())) {
                return prompt;
            }
        }
        return null;
    }

    public static Boolean isInner(Prompt p) {
        return p.equals(STATISTICS_ANALYZE);
    }
}
